Not off the shelf.Built to stand out.
For photographers, practices, and businesses that want to be unmistakable online. Direct contact with the developer. No agency overhead.
Portfolio
Selected work for people and businesses that did not want to look like everyone else online.
Carina Lechner Photography
Portfolio & Wedding Photography
A photography portfolio for wedding and portrait photographer Carina Lechner. Elegant design with image galleries, smooth animations, and a contact form.
What I build for you
Design, engineering, and features from one source. No builder aesthetics, no plugin bloat, no technical compromises.
Individual portfolios & practice sites
For photographers, artists, practices, and selected businesses. The design and structure are shaped around your presence, not a recycled layout.
Clear on every device
Desktop, tablet, mobile: the site stays calm, polished, and easy to use.
Fast, stable, search-friendly
Clean code, strong Core Web Vitals, and a setup that stays reliable under real-world load.
Technically built to be found
Structured data, clear information architecture, and content that is designed to be discovered as well as admired.
Features that actually fit
Booking, CMS, integrations, or AI assistants with clear rules and your own business data – properly integrated instead of glued on.
Hosting on your terms
Managed cloud, a traditional server, or self-hosted infrastructure. You choose between convenience and maximum control over operations, data, and jurisdiction.
More than surface-level
GPU particle fields, custom shaders, real-time computation running live in the browser. When your project gets technically ambitious, I'm still the right person to talk to.
// Curl-noise flow field
uniform sampler2D uPosition;
uniform float uDt;
vec3 curlNoise(vec3 p) {
float e = 0.1;
vec3 dx = vec3(e, 0.0, 0.0);
vec3 dy = vec3(0.0, e, 0.0);
vec3 dz = vec3(0.0, 0.0, e);
float x = snoise(p + dy) - snoise(p - dz);
float y = snoise(p + dz) - snoise(p - dx);
float z = snoise(p + dx) - snoise(p - dy);
return vec3(x, y, z) / (2.0 * e);
}
void main() {
vec2 uv = gl_FragCoord.xy / resolution.xy;
vec3 pos = texture2D(uPosition, uv).xyz;
pos += curlNoise(pos * 0.18) * uDt;
gl_FragColor = vec4(pos, 1.0);
}
How I work
Direct contact, clear steps, clean execution.
Discovery
We talk through your audience, goals, and requirements. No long questionnaires, just a direct conversation.
Design
You get a clear concept and a clickable prototype. When it helps, I bring in focused support from my design network.
Development
Built by hand – performant, secure, and extensible. No templates, no plugin pileup, just a solution that fits your business.
Launch
Production launch with SSL, technical SEO, and a clean setup on the platform you choose – from managed hosting to self-hosting.
Ongoing Support
After launch, I stay available for updates, monitoring, and technical improvements.
Sounds interesting?
Tell me briefly what you have in mind. I'll get back to you personally and we can figure out if and how I can help.
Who you'll work with
Software engineer with dedicated partners in graphic design and marketing.

I'mSebastian,asoftwareengineerbasedinVienna.Mybackgroundisinsystemswherefailureisnotanoption:tradingalgorithms,compliance,dataplatforms,startupproductsunderrealpressure.Ibuilddigitalpresencesbecauseitbothersmethatalmostallofthemlookthesame–andbecauseIhavethetechnicaldepthtochangethat.
Iwanttogivephotographers,artists,practices,andbusinessestheirindividualityback.Engineeringanddevelopmentareentirelyonme.Forgraphicdesignandmarketing,Iworkwithdedicatedpartnersatthesamequalitylevel.Noagencyoverhead,noanonymousteam–justengineering,design,andstrategyasone.
Let's talk about your project
Portfolio, practice site, or custom company presence: you speak directly with the person who plans and builds the project. First conversation always free.
Location
Vienna, Austria
Region
Germany & Austria
Response time
Usually within one business day
Languages
German, English, Spanish
Status
AVAILABLE