Vincent Ritter

< back to projects

Sublime Ads

A privacy focused ad management service for your apps, websites and others.

Sublime Ads is a platform to allow you to manage and serve your very own ads in your own apps, on your websites, or other services using a simple API, or a lightweight drop-in JS script. You are in complete control on what you want to show, and how.

Everything is in one place and is easy to manage, no need to write your own custom solution. On top, Sublime Ads is privacy conscious to you and your users. Only taps/clicks will be registered for served ads and nothing else (can also be disabled per ad). I also don't use any tracking for the web application and other things, just like the internet is supposed to be.

Launching as an MVP product, very soon, to satisfy my very own needs as a developer with multiple apps and sites.

Visit the website here.

Project posts

Finished the initial API, with new tweaks, for Sublime Ads! Now I just need to work on displaying the data and documentation.

If you’ve signed up I may email you beforehand, this week, so you can give it a try before I finish the above tasks.

Interesting to learn a few gaps I have with Sublime Ads now that I have them running on my own site. Nothing major though, just a few more API ideas and routing…

Here are my first two “ads” on my site… nothing like self promoting:

Happy to report that Sublime Ads is now serving ads via the API.

Currently whipped up something real simple on my own site, in the sidebar, that took me 10 - 15 minutes including styling. Have a look for “Sublime Ads”.

There is still room for a few tweaks, but I’m happy the data is coming through nicely.

The integration on my site is with my own styling and isn’t perfect as such, but you can see it working.


Productive morning and afternoon. Have built out the tap and redirect handler for Sublime Ads and, on top of that, I also managed to get the base API in place. Just need to work on “stats” views. Hopefully this week for that and then I can start sending out invites!

Trying to keep Sublime Ads super simple in terms of style and any “fancy” functionality. Logic and HTML first, followed by a sprinkle of JS to make it just that little bit more modern. Dashboard will be more JS heavy though (I want ANIMATED CHARTS and the works!!! 🤤).

Have been casually working on Sublime Ads this evening. Nice to get into it again. Worked on linking categories to ads. Was hard to get my head around first (because I’m totally tired 🤯).

Here is a screenshot (Shows active and paused states):

More coming soon!

Such a small feature… so many changes…

I’m using ActionText with the awesome Trix editor for Sublime Ads… so you can add some nice stuff for your ad content - thought it might be useful to add basics to it.

Did a bit of tweaking to the Sublime Ads holding page… it was using the application JS files, which I didn’t want. So now it’s under a ~100KB page load with only a few basic things.

Also made a few things… PINK. Looks bad on this image due to compression… but it’s 🤩

So this works nicely now!

Now just to sprinkle a bit of JavaScript on it, to make it super smooth.

Sublime Ads - Categories

It's taken me a bit longer to get to this point. Mainly because my brain just had to defuse somewhat and work on something else.

However, the categories section is now complete as far as I can get it, without the ads work being done yet.

What are categories

The categories are a way for you to essentially group your ads, giving you an easy way to organise stuff on how you see fit. It really is up to you.

The way I see it:

Categories can be anything from sub-categories, within a podcast or feed reader app, or they can be a way to separate your ads to your apps, sites and services

That means, do what suits you best for you scenario. You might have a few websites and apps and you want to separate out on what you want to show on which.

If you have a feed/podcast app you can have different categories according to your own feeds. For example: "Art", "Nature", "ROFL", "David Hasselhoff".

The idea here is that you can target each individual category when calling the API, so only Ads are returned within a given category.

Categories are optional and you don't have to use them if you don't want to. You can be as messy as you want.

Category view and creation

The categories view is super simple for now, with a minimum feature set just to keep true to the MVP idea. This is only a first step of many things I want to do. So if you feel it's lacking... don't worry.

When you first start, you'll see a super simple add button and an explanation what they're all about.

Simple enough.

Pressing "Create new" will take you to the form. It's simple for now.

Give it a name and an optional description. As easy as that. The description is used just for you internally, so you can give yourself a hint of what lies within.

Again, I show a hint of what a category can be.

Once you have added it, it's saved. The category page is updated and you now get a nice list view with a few extra details:

Let's zoom in...

Category list and details view

A nice table with simple info for you. Of note, each category will have an ID associated with it. This is used for the API if you wish to return ads just for that specific one. In the category detail view, shown in a moment, you can select it and copy it quite easily.

So, we have a name, an ID, your description. Then I'll also show how many active ads are tied against the category. They're showing "0" because I need to add the actual ad functionality as my next step hehe.

Next we have a status indicator; you may pause any category. That means it won't return anything from the API. Useful.

Then we have a few action buttons to suit your needs.

Before I move on... everything works on smaller screens too:


Tapping on "View" will take you to the detail page. This is still very sparse at the moment, as I need to work on the ad functionality. My plan is to show linked ads and perhaps some basic stats (if enabled).

Here it is:

Tapping the ID will select the whole number so you can easily copy and paste it.

If you have a description that will show underneath... and you will also see the current category status. The edit button takes you to the edit form, similar to the create one… there you’ll also be able to pause it.

Again, that's just real simple but to the point where I want it for now.

Wrapping up

I'm quite happy with this section so far. Now the real works starts with adding the actual Ad functionality to the app.

There are plans to add a bit more flexibility to categories, for example expiry dates and the amount of ads each category can hold. So for example if you want to sell 5 ads per category, you could set that. However, this will be something I add after the initial launch.

Another thing I slowly need to think about is the dashboard and documentation. I made small steps in this area already...

I’ve been exploring some documentation static site generators and landed with VuePress. I can write in Markdown and I don’t have to worry too much about styling. Looks really great and is fast. I’ll be using it for Sublime Ads and probably everything else.

Also… you don’t have to use categories if you don’t want to. It’s totally optional.

Just to give you some idea how you could use “Categories” within Sublime Ads:

That’s how I would use it. I’ll do a bigger writeup when the time comes.

Hopefully I’ll spend one more evening/day on the category view for Sublime Ads, and then I’ll move onto the Ads themselves. I estimate a good week just for the Ad implementation. Then I need to get the API going too. Then I can invite people that are on the list!