diff --git a/src/pages/about.astro b/src/pages/about.astro index a1dc5f0..ee17719 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -4,9 +4,18 @@ import MainLayout from '../layouts/MainLayout.astro'; import { Image } from 'astro:assets'; import profileImg from '../assets/images/about/profile.jpg'; import WaveBackground from '../components/WaveBackground.astro'; +import { business, basedIn } from '../data/business'; --- - + @@ -21,7 +30,7 @@ import WaveBackground from '../components/WaveBackground.astro';
Linus Olofsson Photographer

- Dynamic moments,
- Frozen in high resolution. + Levande ögonblick,
+ fångade i hög upplösning.

- Hi — I’m Linus Olofsson. - Cloud specialist by day, passionate photographer by night. + Hej, jag heter {business.person.name} och är fotografen bakom {business.brand}.

- Based in Sweden, my journey began with a simple curiosity for how light shapes the way we perceive the world. Over time, that curiosity evolved into an obsession with capturing the subtle details most people overlook — textures, structures, contrasts and moments that flicker by unnoticed. + Jag är baserad i {basedIn()}. Allt började med en enkel nyfikenhet på hur ljuset formar sättet vi ser världen på. Med tiden blev nyfikenheten en besatthet av att fånga detaljerna som de flesta missar – texturer, strukturer, kontraster och ögonblick som passerar obemärkt förbi.

- I find beauty in the small things: a stone, a tree, an empty street, a quiet forest path, or the expression of a stranger passing by. + Jag hittar skönheten i det lilla: en sten, ett träd, en tom gata, en stilla skogsstig eller uttrycket hos en främling som går förbi.

- Whether it’s the intricate patterns of a macro shot, the vast silence of nature, or the energy of a city, my goal is - always the same — to create images that convey emotion and tell a story without words. + Oavsett om det är de invecklade mönstren i en makrobild, naturens stora tystnad eller stadens energi är målet alltid detsamma – att skapa bilder som förmedlar känslor och berättar en historia utan ord.

+

{business.recognition}

@@ -58,10 +66,13 @@ import WaveBackground from '../components/WaveBackground.astro';
@@ -69,7 +80,7 @@ import WaveBackground from '../components/WaveBackground.astro';
-

What's in my bag?

+

Vad har jag i kameraväskan?

@@ -77,20 +88,19 @@ import WaveBackground from '../components/WaveBackground.astro';
-

Camera Body

-

Sony A7RV

-

A trusty companion that has been with me on countless adventures.

+

Kamerahus

+

{business.camera}

+

En pålitlig följeslagare som har varit med mig på otaliga äventyr.

-

Lenses

-
    -
  • Sony FE 70-200mm f/4 G OSS
  • -
  • Sony FE 20mm f/1.8 G
  • -
  • and a couple of extra batteries
  • +

    Objektiv

    +
      + {business.lenses.map((lens) =>
    • {lens}
    • )} +
    • och ett par extra batterier
@@ -98,9 +108,9 @@ import WaveBackground from '../components/WaveBackground.astro';
-

Editing

-

Adobe Lightroom Classic

-

Where the raw captures come to life. I focus on natural tones and contrast.

+

Redigering

+

{business.editing}

+

Här får råfilerna liv. Jag fokuserar på naturliga toner och kontrast.

diff --git a/src/pages/contact.astro b/src/pages/contact.astro index e34a4de..dc7dc39 100644 --- a/src/pages/contact.astro +++ b/src/pages/contact.astro @@ -2,55 +2,66 @@ // src/pages/contact.astro import MainLayout from '../layouts/MainLayout.astro'; import WaveBackground from '../components/WaveBackground.astro'; +import { business } from '../data/business'; --- - +
-
-

Get in touch

-

- Do you have questions about any of my photos, collaborations, or just want to say hi? - Connect with me on social media or send me a direct email. +

Kontakta mig

+

+ Har du frågor om någon av mina bilder, vill du samarbeta eller bara säga hej? + Hör av dig via sociala medier eller mejla mig direkt.

+

+ Vill du boka en fotografering? Skicka en förfrågan i kundportalen så återkommer jag med en offert. + Läs mer om hur det går till under Tjänster. +

+ Skicka en bokningsförfrågan
-

You can also find me on...

+

Du hittar mig också på

- - - - - - @@ -63,8 +74,8 @@ import WaveBackground from '../components/WaveBackground.astro';
-

Waiting to hear from you

-

Feel free to reach out for inquiries or just a chat.

+

Jag ser fram emot att höra av dig

+

Hör gärna av dig med frågor, förfrågningar eller bara för att prata.

@@ -74,18 +85,21 @@ import WaveBackground from '../components/WaveBackground.astro';
-

Email me at

- -

Copied to clipboard!

+

Mejla mig på

+ + {business.email} + +
+ +
+

Kopierad!

@@ -93,6 +107,24 @@ import WaveBackground from '../components/WaveBackground.astro';
+ - - \ No newline at end of file diff --git a/src/pages/index.astro b/src/pages/index.astro index 4bfaa5a..ca07661 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,9 +3,14 @@ import MainLayout from '../layouts/MainLayout.astro'; import ThreeDScroll from '../components/ThreeDScroll.astro'; import WaveBackground from '../components/WaveBackground.astro'; +import { business, basedIn, genreList } from '../data/business'; --- - +
@@ -38,7 +43,8 @@ import WaveBackground from '../components/WaveBackground.astro';
-

↓

+

Fotograf {business.person.name} · {basedIn()}

+
@@ -52,14 +58,14 @@ import WaveBackground from '../components/WaveBackground.astro';
+ +
+
+
+

Fotograf {business.person.name}

+

+ Jag heter {business.person.name} och fotograferar under namnet {business.brand}. + Jag är baserad i {basedIn()} och fotograferar {genreList()}. +

+

{business.recognition}

+

+ Jag fotograferar med en {business.camera} och redigerar i {business.editing}, med fokus på naturliga toner och kontrast. +

+

+ Mer om mig + Portfolio + {business.email} +

+
+ +
+

Så bokar du

+
    + {business.bookingSteps.map((step, i) => ( +
  1. + {i + 1} + {step.title}. {step.text} +
  2. + ))} +
+ +
+
+
+ + +
- - \ No newline at end of file diff --git a/src/pages/privacy.astro b/src/pages/privacy.astro index 3d0d212..916f5e5 100644 --- a/src/pages/privacy.astro +++ b/src/pages/privacy.astro @@ -2,89 +2,102 @@ // src/pages/privacy.astro import MainLayout from '../layouts/MainLayout.astro'; import WaveBackground from '../components/WaveBackground.astro'; +import { business } from '../data/business'; + +const link = 'text-white underline hover:text-gray-300'; --- - +
-

Privacy Policy

-

Last updated: 25 October 2026

+

Integritetspolicy

+

Senast uppdaterad: 27 oktober 2026

-

Who is responsible

+

Vem som är ansvarig

- Images by Olofsson is run by Linus Olofsson, Sweden. Questions about privacy: - Admin@imagesbyolofsson.se. + {business.brand} drivs av {business.person.name}, {business.country.name}. Frågor om integritet: + {business.email}.

-

This website

+

Den här webbplatsen

    -
  • There are no user accounts and no contact forms.
  • -
  • If you email me, your address and message are used only to answer you and are not shared with anyone.
  • -
  • Password-protected galleries keep the password only in your open browser tab; it is not stored after you close it.
  • +
  • Det finns inga användarkonton och inga kontaktformulär på den här webbplatsen. Bokningar görs i den separata kundportalen.
  • +
  • Om du mejlar mig används din adress och ditt meddelande bara för att svara dig och delas inte med någon.
  • +
  • Lösenordsskyddade nedladdningar sparar lösenordet bara i din öppna webbläsarflik; det finns inte kvar när du stänger den.
  • - The site is delivered through Cloudflare, which processes technical data such as your IP address to deliver - and protect the site. See Cloudflare's privacy policy. + Webbplatsen levereras via Cloudflare, som behandlar tekniska uppgifter som din IP-adress för att leverera + och skydda webbplatsen. Se Cloudflares integritetspolicy.
  • -
  • If you appear in one of my photos and want it removed, email me and I will take it down.
  • +
  • Om du syns på någon av mina bilder och vill att den tas bort, mejla mig så tar jag bort den.
-

Meta Pixel (only with your consent)

+

Meta Pixel (bara med ditt samtycke)

- If you click "Accept" in the cookie box, the site loads the Meta Pixel from Meta Platforms Ireland Ltd. - I use it to see how visitors coming from my Instagram and Facebook use the site. + Om du klickar på ”Godkänn” i cookierutan laddar webbplatsen Meta Pixel från Meta Platforms Ireland Ltd. + Jag använder den för att se hur besökare som kommer från mitt Instagram och Facebook använder webbplatsen.

    -
  • It sets cookies (such as _fbp) and sends Meta information like the pages you visit, your IP address and browser details.
  • -
  • Meta may link this to your Facebook or Instagram account and may transfer data outside the EU. See - Meta's privacy policy.
  • -
  • If you click "Decline" or do nothing, the pixel is never loaded.
  • -
  • You can change your choice at any time via "Cookie settings" at the bottom of every page. Your choice is stored in your own browser.
  • +
  • Den sätter cookies (till exempel _fbp) och skickar uppgifter till Meta, som vilka sidor du besöker, din IP-adress och information om din webbläsare.
  • +
  • Meta kan koppla detta till ditt Facebook- eller Instagramkonto och kan föra över uppgifter utanför EU. Se + Metas integritetspolicy.
  • +
  • Om du klickar på ”Avböj” eller inte gör något laddas pixeln aldrig.
  • +
  • Du kan ändra ditt val när som helst via ”Cookie-inställningar” längst ner på varje sida. Ditt val sparas i din egen webbläsare.
-

Anonymous portfolio statistics

+

Anonym statistik för portfolion

- To see which photos people like, the portfolio counts how many times each photo is opened or downloaded, per day. - Only the count is stored, on my own server in Sweden. No cookies, no IP address, no browser details and nothing - that could identify you. This happens without consent because nothing about you is collected. + För att se vilka bilder som uppskattas räknar portfolion hur många gånger varje bild öppnas eller laddas ner, per dag. + Bara antalet sparas, på min egen server i Sverige. Inga cookies, ingen IP-adress, ingen webbläsarinformation och inget + som kan identifiera dig. Det sker utan samtycke eftersom inga uppgifter om dig samlas in.

-

Photo backup app (Google)

+

App för säkerhetskopiering av bilder (Google)

- "townhouse-backup" is a private tool used only by me to back up my own photos to my own Google account. + ”townhouse-backup” är ett privat verktyg som bara jag använder för att säkerhetskopiera mina egna bilder till mitt eget Google-konto.

    -
  • Google Drive: it only accesses files it has created itself (a backup copy of my photo archive).
  • -
  • Google Photos: it only uploads my photos and adds them to albums it created; it cannot see anything else in the library.
  • -
  • No data from anyone else is collected. Nothing is sold, shared with third parties, used for advertising or used to train AI models.
  • +
  • Google Drive: verktyget kommer bara åt filer som det själv har skapat (en säkerhetskopia av mitt bildarkiv).
  • +
  • Google Foto: verktyget laddar bara upp mina bilder och lägger dem i album som det själv har skapat; det kan inte se något annat i biblioteket.
  • +
  • Inga uppgifter om någon annan samlas in. Ingenting säljs, delas med tredje part, används för reklam eller används för att träna AI-modeller.
  • - Its use of information received from Google APIs adheres to the - Google API Services User Data Policy, - including the Limited Use requirements. + Verktygets användning av information från Googles API:er följer + Google API Services User Data Policy, + inklusive kraven på begränsad användning (Limited Use).
+

+ In English: townhouse-backup's use of information received from Google APIs adheres to the + Google API Services User Data Policy, + including the Limited Use requirements. +

-

Your rights

+

Dina rättigheter

- Under the GDPR you can ask what personal data I hold about you, and have it corrected or deleted — just email me. - You can also complain to the Swedish Authority for Privacy Protection - (IMY). + Enligt GDPR kan du fråga vilka personuppgifter jag har om dig och få dem rättade eller raderade – mejla mig bara. + Du kan också klaga hos Integritetsskyddsmyndigheten + (IMY).

diff --git a/src/pages/tjanster.astro b/src/pages/tjanster.astro new file mode 100644 index 0000000..0142fc1 --- /dev/null +++ b/src/pages/tjanster.astro @@ -0,0 +1,127 @@ +--- +// src/pages/tjanster.astro +// Vad Linus fotograferar, för vem, var, pris, leverans och hur man bokar + FAQ. +// Allt från src/data/business.ts och src/data/faq.ts – okända fakta visas inte. +import MainLayout from '../layouts/MainLayout.astro'; +import WaveBackground from '../components/WaveBackground.astro'; +import { business, basedIn, formatSek } from '../data/business'; +import { faq } from '../data/faq'; +import heroImg from '../assets/images/3d-scroll/img2.jpg'; + +const priceFrom = formatSek(business.priceFromSek); +const packages = business.packages ?? []; +const portalHost = new URL(business.portal.url).host; +--- + + + + +
+ +
+

Tjänster och bokning

+

+ Jag heter {business.person.name} och är fotografen bakom {business.brand}, baserad i {basedIn()}. + Här ser du vad jag fotograferar, hur en bokning går till och hur du får dina bilder. +

+ +
+ +
+

Det här fotograferar jag

+
    + {business.genres.map((g) => ( +
  • +

    {g.name}

    +

    {g.description}

    +
  • + ))} +
+

+ Se exempel i min portfolio. + Har du något annat i tankarna? Beskriv det i din förfrågan, så återkommer jag med ett förslag. +

+
+ +
+
+

Var

+ {business.serviceArea ? ( +

Jag utgår från {basedIn()} och tar uppdrag i {business.serviceArea}.

+ ) : ( +

Jag är baserad i {basedIn()}. Kontakta mig så stämmer vi av om jag kan fotografera där du befinner dig.

+ )} +
+
+

Pris

+ {priceFrom ? ( +

Fotografering från {priceFrom}. Det slutliga priset står i offerten.

+ ) : ( +

Priset beror på uppdraget. Kontakta mig eller skicka en förfrågan, så får du en offert för just det du vill ha fotograferat.

+ )} + {packages.length > 0 && ( +
    + {packages.map((p) => ( +
  • + {p.name} + {formatSek(p.priceSek) && – {formatSek(p.priceSek)}} + {p.includes.length > 0 && {p.includes.join(', ')}} +
  • + ))} +
+ )} +
+
+ +
+

Så går en bokning till

+
    + {business.bookingSteps.map((step, i) => ( +
  1. + {i + 1} +
    +

    {step.title}

    +

    {step.text}

    +
    +
  2. + ))} +
+

+ Leverans: bilderna levereras i ett privat galleri i kundportalen + ({portalHost}).{business.deliveryTime && ` Normal leveranstid är ${business.deliveryTime}.`} +

+ Skicka en förfrågan i kundportalen +
+ +
+

Vanliga frågor

+
+ {faq.map((item) => ( +
+ +

{item.question}

+ +
+

{item.answer}

+
+ ))} +
+

+ Fler frågor? Mejla {business.email} + eller skriv på Instagram {business.social.instagram.handle}. +

+
+ +
+