Raw dev logs, daily progress, and behind-the-scenes of building things.
Today was all about bringing the new configurable banner system closer to something usable, both internally and for upcoming partnerships.
I finalized all current placements inside a static JSON for now and wrote clear instructions on how each placement should be configured.
Since this system is still fresh, I also generated a clean PDF version to send to partners, sent it already for the first partner so they can understand exactly how and where their banners will appear inside the app.

The next development step is pretty straightforward but important: moving this JSON from local file to an API, so the app can fetch banner rules remotely on load.
That way, we can update placements instantly without waiting for another App Store or Play Store release.
Until then, we’ll manage the static JSON manually. Not elegant, but enough to get things running until we have time to build a proper dashboard, similar to the one we already have for the web.
Another thing on my mind today:
I still need to figure out the best way to track when a banner is actually in view, not just loaded.
Ad networks have nuanced definitions for visibility, and I want to understand the best practice before implementing our own version. Something to research in the next few days.
Today I had to shift my focus fully to Temettü, and I’m glad I did, it was time to build a more flexible foundation for how we show banners across the app.
Until now, we’ve been relying on AdMob (not great for the Turkish market) and then AdManager for custom banners, which works almost fine but comes with its own complications.
Since we’re starting to get interest from new partnership opportunities, I wanted a system that gives us more control instead of being stuck with the limitations of external ad networks.
So I created the base for a configurable system, driven by a simple JSON structure for now.

This will give us full flexibility on where and how banners appear, and later on it can evolve into a proper dashboard module.
For today, two placements are already working:
And it's all analytics is wired to PostHog, logging impressions and clicks with additional metadata, something partners love to see and something we also want for our own product insights.
Next steps will be adding:
A very infrastructural kind of day, but these are the pieces that make future iterations faster and smoother.
I spent today working on the Space Explorer Kit, and it’s finally reaching the point where it feels like a real product.
Not finished yet — but almost ready for its first digital printable release, which feels surreal considering this idea didn’t even exist around a week ago.
At the moment, the kit sits at around 35 pages, covering:
There are still a few instruction pages to add, some detail clean-up, and final polishing, but the core experience is already there. It’s starting to look like something a real kid (or an adult with a playful heart) would enjoy and that’s the best part.
I also played around with AI mockups, and it’s honestly crazy how far these tools have come.

Still not perfect, still needs post-editing, but compared to AI two years ago… it feels like we’re designing with a superpower.
I wanted to wrap up it's listing this weekend, but priorities shifted a little.
We received interest from our first potential partner for Temettü since releasing the new partnership page so the next few days will likely go into preparing, refining, and showing up for that opportunity.
A small pause from this kit for now, but I’ll return to it soon.
Today I continued shaping the Space Explorer Kit, this time focusing on the planet cards: little pages filled with fun facts, curiosity prompts, and tiny scavenger-hunt style items.

Adding small details from my inner child, imagining how a kid would react, trying to make each card feel playful and a bit magical…
It’s just a small piece of the full kit, but every new page makes the whole thing feel more alive.
A slow, steady build and I genuinely look forward to continuing tomorrow.
Today is the first real design day for Kit of Happiness and it officially begins with the Space Explorer Kit!
I finished the main cover design and created the first batch of themed badges: Space Explorer, Space Commander, Astronaut...

Seven pages are already done, and I’m planning a full 30+ page experience kit, along with a separate party edition 🎉 later on.
I use Canva to bring the whole PDF kit together, probably my all-time favorite design tool. It’s one of those rare products that genuinely deserves its Pro subscription.
It feels so refreshing to design something playful again to think in colors, textures, and imagination rather than screens and data.
Today marks 20 consecutive days of showing up on oneweek.dev 🎉
To celebrate that small milestone, I focused on a bit of infrastructure work, adding pagination (?page=x) to the logs section, updating the sitemap.xml, and re-submitting it to Google Search Console.
Since I didn’t want each paginated view indexed separately, I kept it minimal, just enough for proper SEO crawling while keeping URLs clean.
Then, I used a small Google Indexing API script I had written earlier to automate submitting recent logs directly to Google whenever needed.
It’s simple, local, and gets the job done quickly. Here’s the Node.js script if you want to try it too:
const { google } = require("googleapis");
const fs = require("fs");
// Load client secrets
const credentials = JSON.parse(fs.readFileSync("credentials.json"));
// Read URLs from file
const urlsFilePath = "urls.txt"; // Path to your file
const sitemapUrls = fs
.readFileSync(urlsFilePath, "utf8")
.split("\n")
.filter(Boolean);
async function authenticate() {
const auth = new google.auth.GoogleAuth({
credentials: {
client_email: credentials.client_email,
private_key: credentials.private_key,
},
scopes: ["https://www.googleapis.com/auth/indexing"],
});
return await auth.getClient();
}
async function notifyGoogle(auth, url) {
const indexing = google.indexing({
version: "v3",
auth,
});
try {
const res = await indexing.urlNotifications.publish({
requestBody: {
url: url,
type: "URL_UPDATED",
},
});
console.log(`✅ Successfully notified Google about URL: ${url}`);
} catch (error) {
console.error(`❌ Error notifying Google about URL: ${url}`, error);
}
}
async function main() {
const auth = await authenticate();
for (const url of sitemapUrls) {
await notifyGoogle(auth, url);
}
}
main().catch(console.error);
urls.txt
https://oneweek.dev/log/2025-11-08-bringing-ambassador-program-for-genuine-growth
https://oneweek.dev/log/2025-11-07-adding-app-store-data-and-platform-breakdown
https://oneweek.dev/log/2025-11-06-publishing-the-advertise-page-on-our-finance-app
credentials.json
{ "type": "service_account", "project_id": "xxx", "private_key_id": "xxxx", "private_key": "-----BEGIN PRIVATE KEY-----xxxx-----END PRIVATE KEY-----\n", "client_email": "xxxx", "client_id": "xxxx", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "xxxx", "universe_domain": "googleapis.com" }
It seems like it worked perfectly, all recent logs are now indexed!

A small but satisfying improvement to make oneweek.dev more discoverable while keeping things fully manual for now and maker-friendly.
After getting the first response from our initial outreach for potential partnerships, today we focused on creating a detailed pitch deck, filled with deeper audience insights and custom ideas for the first potential partner.
It turned out really well.
We’ve always believed that the personal touches make the difference. That’s why instead of sending generic offers, we’re preparing custom partnership decks for each brand we genuinely admire, the ones that align with our mission and resonate with our audience too.

This approach feels much more authentic, and even though it takes more time, it’s the kind of groundwork that builds meaningful collaborations rather than one-time deals.
It feels like a small but important step toward sustainable growth for Temettü.
Today I built a new internal analytics dashboard to better understand our user base; not individual data, but anonymous patterns that help us shape both product decisions and marketing partnerships.

It gave us some really interesting insights about who’s using Temettü and how they engage:
Top age groups:
Gender:
Top interests:
Top occupations:
Notifications enabled: 43.6%
It’s clear that our community is deeply financially literate, highly engaged, and mostly composed of professionals actively managing their portfolios.
This data will be valuable not only for future feature prioritization but also for building meaningful brand partnerships that align with what our users already care about.
Today it was a long day at work and I found a quite space in the evening only for some reflections: AI is definitely coming for our jobs, what to do next.
It’s about the shift we’re all witnessing on how AI is slowly replacing not just labor but thinking, and what that means for makers, builders, and anyone trying to stay creative in a world of automation.
I wrote it as both a reflection and a reminder: that fear doesn’t help, action does.
That the best way to stay relevant is to keep building, experimenting, and co-creating with these new tools instead of resisting them.
It’s a longer piece, exploring:
Today I wrote and published a new blog post titled “5 digital products that bring back soul to the internet.”
It’s the first entry in the new Get Inspired series, something I’ve been wanting to do for a while: highlighting creative projects that remind me what the internet used to feel like.
The post explores five products that combine design, emotion, and technology in thoughtful, human ways:
Writing this piece felt like a breath of fresh air, a reminder that technology doesn’t have to be cold or purely functional.
Sometimes it can simply make us feel something again.
I want this series to continue to discover and celebrate digital products that carry warmth, curiosity, and intention in their design.
If you know a project that made you pause or smile, send it my way. Maybe it’ll appear in the next issue.
Showing 31-35 of 35 entries